1. Field of Invention
Embodiments of the invention relate in general to application software. More specifically, the embodiments of the invention relate to methods and systems for debugging application software in the case of an exception.
2. Description of the Background Art
Logging is an essential tool in the software development process. It keeps track of the steps performed and logs messages that indicate the condition of the software. The messages may be logged during the execution and/or the debugging of the software. These messages are generally stored on an external memory since the memory resources available on the processor are typically limited.
Every log message has an associated log level. A logging level indicates the extent of message detail to be logged. At a particular logging level, all the messages for that level, as well as for higher levels, are logged. A large volume of low priority messages is logged at a lower logging level. This increases the size of the log, causing the performance of the system to be affected. It is also difficult to analyze such a large-sized log and identify the cause of the possible problem. On the other hand, the low volume of high priority messages are logged and messages of lower severity are discarded at a higher logging level. This leaves the user with a limited amount of information.
In conventional techniques, by default, only errors/exception are logged to avoid the formation of large log files and performance hits. However, this results in insufficient information in the log. As a result, in the case of an exception, the user loses track of the sequence of steps that resulted in the exception, except for the most recent step. This may have limited use in debugging the software, which may result in situations where the user has to be asked to recreate the scenario with logging enabled on certain processes. This may entail multiple iterations in scenarios where multiple processes may be involved in processing a task.
Some software applications also dump system state information from the operating system, with all the registers, in the case of an exception. However, this does not help the application software to comprehend the problems.
To summarize, the errors/exceptions that occur during the course of the operation, over weeks, may not be solved effectively by using conventional techniques. Specifically, if the logging at the lowest levels (debug) is enabled, the performance of the system is affected since the log is of a huge size. Recent customer surveys have shown that customers are not happy to modify the software every time an exception is encountered, and then revert to logging changes to return to normal.